1. Field of the Invention
The present invention generally relates to communication networks, and more particularly, to packet networks, and devices included therein, for carrying information between hosts such as computers.
2. Related Art
Wide Area Packet Networks typically comprise multiple local networks connected to each other through gateways, switches, routers or other similar devices. As is well known, most networked computer communication is defined with the aid of layered reference models for depicting the movement of information between host computers connected to the network. The layers in the reference models help to segregate information and network functions into manageable units. The general functions of each layer are often based on an international standard called Open System Interconnection (OSI). OSI sets forth seven processing layers through which information may pass when received by a host in order to be presentable to a non-user. Similar, transmission of information from a host to the network may pass through those seven processing layers in reverse order. Another layered reference model that is widely implemented is called TCP/IP (Transmission Control Protocol/Internet Protocol).
Packet switches are devices that are commonly found in networks. The operation of these devices can be described using layered protocol models. Generally, a network packet switch takes ingress packet traffic, classifies such traffic, performs rewrites of packet header and data information, and then forwards that traffic to another device or host on the network.
To perform network transport layer functions, some switches rely on transmission control blocks (TCBs). A TCB is a data structure that contains context information associated with a logical connection to a host. In a TCP/IP environment, a TCB includes source and destination IP address, as well as source and destination TCP ports that define the connection. It also contains information about the connection itself, such as the current send and receive sequence numbers, the first-hop MAC address, and such. A more complete definition of the TCP/IP TCB structure is given in RFC793, xe2x80x9cTransmission Control Protocol Specificationxe2x80x9d, published by the Defense Advanced Research Projects Agency, hereby incorporated by reference.
Using information contained in a TCB, a switch can process packets and manage traffic coming in and out of the switch. In known switches, TCBs are record data structures that are managed and used by software programs designed to handle and manage packet traffic. Although a software approach to transport layer functionality and TCB management has been useful in some network environments, other, hardware-based approaches can offer greater switch throughput and capacity.
It is an advantage of the present invention to provide an improved system and method for managing connections and packet traffic that allows increased throughput and capacity for a networked switch.
According to an embodiment of the invention, a system is provided for processing packet traffic in a network. The system includes a memory, a binding lookup table (BLT), a packet manager, and a transmission control block (TCB) database. The memory stores service policy indexes associated with networked hosts. Upon receiving a packet at the system, the BLT extracts header information from the packet and applies it to the memory to retrieve a service policy index corresponding to the packet. A policy manager can be included in the system to make a routing decision based on the retrieved service policy index, and instruct the packet manager how to respond to the connection. The packet manager uses the BLT index and the policy decision to provide translation or other services to the inbound packet.
According to another embodiment of the invention, a network switch is provided. The switch includes a first content addressable memory (CAM), a second CAM, a BLT, a TCB database, and a packet manager. From each packet coming into the switch, the BLT extracts two sets of header information from the ingressing packet. The first set is applied to the first CAM to retrieve an associated service policy index. The second set of header information is applied to the second CAM to determine whether a connection already exists corresponding to the packet. If a connection exists, a flow transmission control block (fTCB) pointer, a client transmission control block (cTCB) pointer or a server transmission control block (sTCB) pointer is retrieved from the second CAM. Otherwise, if there is no current connection for the packet, a check is made of the service policy index to determine the level of service associated with the packet. Based on the assigned level of service, a new fTCB pointer is retrieved from a separate memory, or alternatively, a client TCB (cTCB) pointer is retrieved. Depending on whether the packet is part of a new connection and the associated level of service, the flow TCB pointer from the second CAM, the new fTCB pointer, or the cTCB pointer is provided to the packet manager. The packet manager can then access the database and process the packet according to which TCB pointer it receives.
In accordance with a further embodiment of the invention, a method is provided for processing packet traffic in a network. In this method, networked hosts are assigned to various predetermined service levels. A memory capable of storing transmission control blocks (TCBs) is provided. The TCBs can be grouped together in the memory according to the service levels. Upon receiving a packet, header information is extracted therefrom. Based on the header information, a service level is associated with the packet. A transmission control block (TCB) in the database can then be access based on the service level associated with the packet, and the packet can be processed according to information contained in the TCB.
According to yet a further embodiment of the invention, a method is provided for processing a packet in a network switch. With this method, a five-tuple is extracted from the packet header. A three-tuple is also extracted from the header information. Next, a service index is determined, based on the three-tuple. Based on the five-tuple, a determination is made as to whether the packet is associated with an existing connection. If there is an existing connection, a previously assigned flow transmission control block (fTCB) pointer, client transmission control block (cTCB) or server transmission control block (sTCB) associated with the packet is retrieved. If there is no existing connection, a new fTCB pointer, or alternatively, a cTCB pointer is assigned to the packet. The particular TCB pointer assignment in this case is based on the service policy index. The packet is then processed as a function of the assigned TCB pointer.
Other systems, methods, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the accompanying claims.